package DAO;

import java.util.List;

import model.Link;
import model.Page;
import model.Resource;
import model.ResourceFile;
import model.ResourceMessage;

public interface ResourceDAO {
	/*添加链接
	 * @param link
	 * @return int result / 0 失败 1 成功
	 */
	public int addLink(Link link);
	
	/*获得链接列表
	 * @param page
	 * @return List<Link> result / 链接列表
	 */
	public List<Link> getLinkList(Page page);
	
	/*获得我的链接列表
	 * @param 获得我的链接
	 * @return List<Link> result / 链接列表
	 */
	public List<Link> getLinkList(int id);
	
	/*修改链接
	 * @param link
	 * @return int result / 0 失败 1 成功
	 */
	public int modifyLink(Link link);

	/*修改链接
	 * @param link.id
	 * @return int result / 0 失败 1 成功
	 */
	public int deleteLink(int id);
	
	/*上传文件
	 * @param resourceFile
	 * @return int result / 0 失败 1 成功
	 */
	public boolean uploadFile(ResourceFile resourceFile);
	/*将上传成功的文件信息存入数据库
	 * @param resource
	 * @return int result / 0 失败 1 成功
	 */
	public int addFileInfo(Resource resource);
	/*获得资源信息列表
	 * @param page
	 * @return List<Resource> resources 
	 */
	public List<Resource> getResourcelist(Page page);
	
	/*获得我的资源信息列表
	 * @return List<Resource> resources 
	 */
	public List<Resource> getResourcelist(int id);
	
	/*获得资源详细信息
	 * @return Resource resource 
	 */
	public Resource getResourceById(int id);

	/*增加对资源的评价留言
	 * @param ResourceMessage
	 * @return int result / 0 失败 1 成功 
	 */
	public int addRMessage(ResourceMessage resourceMessage);
	
	/*获得对资源的评价留言
	 * @param Resource的id  page
	 * @return ResourceMessageList / 
	 */
	public List<ResourceMessage> getResourceMessage(int id, Page page);
	
	/*删除对资源的评价留言
	 * @param ResourceMessage的id
	 * @return int result / 0 失败 1 成功 
	 */
	public int deleteRMessage(int id);

	/*修改资源信息
	 * @param Resource 
	 * @return int result / 0 失败 1 成功 
	 */
	public int modifyResource(Resource resource);

	/*删除资源信息
	 * @param ResourceId 并不真正删除 
	 * @return int result / 0 失败 1 成功 
	 */
	public int deleteResource(int id);

	/*增加下载次数
	 * @param ResourceId 
	 * @return int result / 0 失败 1 成功 
	 */
	public int addDownloadTimes(int id);

	/*删除资源文件
	 * @param docPath 文件相对路径
	 * @return int result / 0 失败 1 成功 
	 */
	public int deleteResourceFile(String docPath);

}
